home *** CD-ROM | disk | FTP | other *** search
/ Software of the Month Club 2000 October / Software of the Month - Ultimate Collection Shareware 277.iso / pc / PROGRAMS / UTILITY / WINLINUX / DATA1.CAB / programs_-_include / ASM-SPAR.{_6 / MPMBOX.H < prev    next >
C/C++ Source or Header  |  1999-09-17  |  2KB  |  68 lines

  1. /* $Id: mpmbox.h,v 1.4 1996/04/25 06:13:19 davem Exp $
  2.  * mpmbox.h:  Interface and defines for the OpenProm mailbox
  3.  *               facilities for MP machines under Linux.
  4.  *
  5.  * Copyright (C) 1995 David S. Miller (davem@caip.rutgers.edu)
  6.  */
  7.  
  8. #ifndef _SPARC_MPMBOX_H
  9. #define _SPARC_MPMBOX_H
  10.  
  11. /* The prom allocates, for each CPU on the machine an unsigned
  12.  * byte in physical ram.  You probe the device tree prom nodes
  13.  * for these values.  The purpose of this byte is to be able to
  14.  * pass messages from one cpu to another.
  15.  */
  16.  
  17. /* These are the main message types we have to look for in our
  18.  * Cpu mailboxes, based upon these values we decide what course
  19.  * of action to take.
  20.  */
  21.  
  22. /* The CPU is executing code in the kernel. */
  23. #define MAILBOX_ISRUNNING     0xf0
  24.  
  25. /* Another CPU called romvec->pv_exit(), you should call
  26.  * prom_stopcpu() when you see this in your mailbox.
  27.  */
  28. #define MAILBOX_EXIT          0xfb
  29.  
  30. /* Another CPU called romvec->pv_enter(), you should call
  31.  * prom_cpuidle() when this is seen.
  32.  */
  33. #define MAILBOX_GOSPIN        0xfc
  34.  
  35. /* Another CPU has hit a breakpoint either into kadb or the prom
  36.  * itself.  Just like MAILBOX_GOSPIN, you should call prom_cpuidle()
  37.  * at this point.
  38.  */
  39. #define MAILBOX_BPT_SPIN      0xfd
  40.  
  41. /* Oh geese, some other nitwit got a damn watchdog reset.  The party's
  42.  * over so go call prom_stopcpu().
  43.  */
  44. #define MAILBOX_WDOG_STOP     0xfe
  45.  
  46. #ifndef __ASSEMBLY__
  47.  
  48. /* Handy macro's to determine a cpu's state. */
  49.  
  50. /* Is the cpu still in Power On Self Test? */
  51. #define MBOX_POST_P(letter)  ((letter) >= 0x00 && (letter) <= 0x7f)
  52.  
  53. /* Is the cpu at the 'ok' prompt of the PROM? */
  54. #define MBOX_PROMPROMPT_P(letter) ((letter) >= 0x80 && (letter) <= 0x8f)
  55.  
  56. /* Is the cpu spinning in the PROM? */
  57. #define MBOX_PROMSPIN_P(letter) ((letter) >= 0x90 && (letter) <= 0xef)
  58.  
  59. /* Sanity check... This is junk mail, throw it out. */
  60. #define MBOX_BOGON_P(letter) ((letter) >= 0xf1 && (letter) <= 0xfa)
  61.  
  62. /* Is the cpu actively running an application/kernel-code? */
  63. #define MBOX_RUNNING_P(letter) ((letter) == MAILBOX_ISRUNNING)
  64.  
  65. #endif /* !(__ASSEMBLY__) */
  66.  
  67. #endif /* !(_SPARC_MPMBOX_H) */
  68.